package com.wg.net.server.tcp;

/**
 * TCP 服务器核心接口（定义服务器生命周期管理与基础操作）
 * <p>
 * 职责：
 * - 管理 TCP 服务器的启动（绑定端口、监听连接）与停止（关闭监听、释放资源）
 * - 提供服务器状态查询能力
 * - 作为扩展点支持自定义连接处理器与配置
 *
 * @author 少爷123
 */
public interface ITcpServer {

    /**
     * 启动 TCP 服务器（绑定端口并开始监听客户端连接）
     * <p>
     * 启动成功后，服务器进入运行状态，可接收客户端连接；
     */
    void start();

    /**
     * 停止 TCP 服务器（关闭监听套接字并断开所有客户端连接）
     * <p>
     * 停止操作会：
     * 1. 终止端口监听，不再接受新连接；
     * 2. 优雅关闭所有已建立的客户端连接（触发连接断开回调）；
     * 3. 释放所有关联资源（如线程池、缓冲区）。
     * <p>
     * 若服务器未启动，调用此方法无副作用。
     */
    void stop();
}